Safety engineering is a growing field in which engineers use redundancy techniques in order to mitigate adverse consequences if an error occurs. For example, space vehicles and many aircraft include redundant systems so that if an engine control component fails during flight, for example, another engine control component can be activated to allow the aircraft to land safely.
In a similar regard, timed input/output (I/O) signals in safety conscious systems can be generated and then subsequently checked to ensure they were actually delivered correctly. This can be useful in any number of applications. For example, in an automotive system, if an output drive signal (e.g., sparkplug signal from an engine controller) is provided to an automobile's engine, a feedback signal (which is derived from the output drive signal that was actually delivered to the engine) can be compared with the original output drive signal to determine whether the output drive signal was, in fact, delivered correctly. Thus, if there is a “bad” connection between the engine controller and the engine itself (or if some other error event occurs), a comparison of the original drive signal and the feedback signal can detect this error, thereby allowing a control system to notify the driver, for example, by illuminating a “check engine” light on the driver's dashboard. In this way, a driver can be informed that an engine problem (e.g., a sparkplug misfire) has occurred, and can then get the vehicle serviced to remedy any corresponding problems.
Although conventional timed I/O techniques are sufficient in some instances, the inventors have appreciated that they are less than ideal in many cases. For instance, in previous timed I/O solutions, software in the form of an interrupt service routine (ISR) compares the output drive signal and feedback signal at each and every edge of the output drive signal. Because the ISR is carried out for each and every edge of the output drive signal, the repeated ISRs represent a significant load on the system's microprocessor. As such, the inventors have appreciated that ISRs create a processing bottleneck for many existing control systems. Because of this, the inventors have devised improved techniques for generating and measuring timed I/O signals.